namespace 封装 {
    // 过滤数组中的奇数并输出
    // const numbers: Array<number> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    // function sdf(numbers: Array<number>): void {
    //     for (const num of numbers) {
    //         if (num % 2 !== 0) {
    //             console.log(num);
    //         }
    //     }
    // }
    // sdf(numbers);

    //查找并输出字符串数组中包含特定子字符串的元素
    // const phrases: Array<string> = ['hello world', 'javascript is fun', 'openai gpt', 'coding is great'];
    // function sdf(phrases: Array<string>) {
    //     for (const phrase of phrases) {
    //         if (phrase.includes('is')) {
    //             console.log(phrase);
    //         }
    //     }
    // }
    // sdf(phrases);

    // 计算并输出包含负数的数组的正数总和
    // const mixedNumbers: Array<number> = [-3, 5, -1, 8, -2, 7];
    // const sdf = (mixedNumbers: Array<number>): number => {
    //     return mixedNumbers.reduce((sum, num) => num > 0 ? sum + num : sum, 0);
    // }
    // const sum: number = sdf(mixedNumbers);
    // console.log(`Total sum of positive numbers: ${sum}`);



    //遍历对象属性并输出符合条件的属性值
    // function printStringValues(obj: { [key: string]: string | number }): void {
    //     for (const key in obj) {
    //         if (typeof obj[key] === 'string') {
    //             console.log(obj[key]);
    //         }
    //     }
    // }
    // // 示例调用
    // const person: { [key: string]: string | number } = {
    //     name: 'Alice',
    //     age: 25,
    //     city: 'Wonderland',
    //     occupation: 'Engineer'
    // };
    // printStringValues(person);

    // 计算对象中数值属性的总和
    // const data: { [key: string]: any } = {
    //     a: 10,
    //     b: 20,
    //     c: 'thirty',
    //     d: 40,
    //     e: 'fifty'
    // }
    // let sum: number
    // function sfd(data: { [key: string]: any }): number {
    //     for (const key in data) {
    //         if (typeof data[key] === 'number') {
    //             sum += data[key];
    //         }
    //     }
    //     return sum;
    // }
    // sum = sfd(data);
    // console.log(`Total sum of numeric values: ${sum}`);

    // 查找对象中符合条件的属性并输出键和值
    // const inventory: { [key: string]: number } = {
    //     apples: 5,
    //     oranges: 0,
    //     bananas: 8,
    //     grapes: 2,
    //     cherries: 0
    // };
    // function sfdf(inventory: { [key: string]: number }) {
    //     for (const key in inventory) {
    //         if (Object.prototype.hasOwnProperty.call(inventory, key)) {
    //             if (inventory[key] === 0) {
    //                 console.log(`${key}:${inventory[key]}`);
    //             }
    //         }
    //     }
    // }
    // sfdf(inventory);

    // 查找并输出数组中的正数并计算它们的平均值
    // const numbers: Array<number> = [-3, 5, -1, 8, -2, 7];
    // function fsdf(numbers: Array<number>): number {
    //     let sum: number = 0;
    //     let count: number = 0;
    //     numbers.forEach(num => {
    //         if (num > 0) { } {
    //             sum += num;
    //             count++;
    //         }
    //     });
    //     const average: number = sum / count;
    //     return average;
    // }
    // const average: number = fsdf(numbers);
    // console.log(`Average of positive numbers: ${average}`);

    // 查找数组中的字符串长度并输出超过特定长度的字符串
    // const words: Array<string> = ['apple', 'banana', 'cherry', 'date', 'fig', 'grape'];
    // const minLength: number = 5;
    // function sdfsf(words: Array<string>, minLength: number): void {
    //     words.forEach(word => {
    //         if (word.length > minLength) {
    //             console.log(word);
    //         }
    //     })
    // }
    // sdfsf(words, minLength);


    // 将数组中的负数转换为正数
    // const numbers: Array<number> = [-3, 5, -1, 8, -2, 7];
    // function 三扽三扽(numbers: Array<number>): Array<number> {
    //     numbers.map(num => {
    //         return num < 0 ? -num : num;
    //     });
    //     return numbers;
    // }
    // console.log(三扽三扽(numbers));

    // 将对象数组中的特定属性值大写化
    // const people: Array<{ name: string, age: number }> = [
    //     { name: 'Alice', age: 25 },
    //     { name: 'Bob', age: 30 },
    //     { name: 'Charlie', age: 35 }
    // ];
    // function uppercasedNames(people: Array<{ name: string, age: number }>) {
    //     people.map(person => {
    //         return person.name.length > 3 ? { ...person, name: person.name.toUpperCase() } : person;
    //     })
    // }
    // console.log(uppercasedNames(people));

    // 将字符串数组中的特定子字符串替换为另一字符串
    // const phrases: Array<string> = ['hello world', 'javascript is fun', 'hello openai', 'coding is great'];
    // const updatedPhrases: Array<string> = phrases.map(phrase => {
    //     return phrase.includes('hello') ? phrase.replace('hello', 'hi') : phrase;
    // });
    // console.log(updatedPhrases);

    // 计算并输出长度大于 5 的字符串的总长度
    // const phrases: Array<string> = ['hello world', 'javascript', 'openai', 'coding is fun'];
    // function sdfsf(phrases: Array<string>): void {
    //     const totalLength: number = phrases
    //         .filter(phrase => phrase.length > 5)
    //         .map(phrases => phrases.length)
    //         .reduce((sum, length) => sum + length, 0);
    //     console.log(`Total length of strings longer than 5 characters: ${totalLength}`);
    // }
    // sdfsf(phrases);

    // 计算正数数组的平方和，并排除负数
    // const numbers: Array<number> = [-5, 3, -2, 4, 6, -1];
    // function squareSum(numbers: Array<number>) {
    //     const squareSum = numbers
    //         .filter(num => num > 0)        // 过滤正数
    //         .map(num => num * num)         // 将每个正数平方
    //         .reduce((sum, squared) => sum + squared, 0); // 计算平方和
    //     console.log(`Sum of squares of positive numbers: ${squareSum}`);
    // }
    // squareSum(numbers);

    // 处理用户数据，提取年龄大于 18 的用户，并计算他们的平均年龄
    // const users: Array<{ name: string, age: number }> = [
    //     { name: 'Alice', age: 22 },
    //     { name: 'Bob', age: 17 },
    //     { name: 'Charlie', age: 30 },
    //     { name: 'David', age: 15 }
    // ];
    // function averageAge(users: Array<{ name: string, age: number }>) {
    //     const averageAge = users
    //         .filter(user => user.age > 18) // 过滤年龄大于18的用户 
    //         .map(user => user.age) // 提取用户年龄 
    //         .reduce((sum, age, _, array) => sum + age / array.length, 0); // 计算平均年龄
    //     console.log(`Average age of users older than 18: ${averageAge}`);
    // }
    // averageAge(users);

    // 在购物车中移除指定商品
    // const cart: Array<{ id: number, name: string, quantity: number }> = [
    //     { id: 1, name: 'Laptop', quantity: 1 },
    //     { id: 2, name: 'Mouse', quantity: 2 },
    //     { id: 3, name: 'Keyboard', quantity: 1 }
    // ];
    // const itemIdToRemove: number = 2;
    // const indexToRemove: number = cart.findIndex(item => item.id === itemIdToRemove);
    // function remove(itemIdToRemove: number, indexToRemove: number, cart: Array<{ id: number, name: string, quantity: number }>) {
    //     if (indexToRemove !== -1) {
    //         cart.splice(indexToRemove, itemIdToRemove);
    //     }
    // }
    // remove(itemIdToRemove, indexToRemove, cart);
    // console.log(cart);

    // 更新数组中的指定对象属性
    // const employees: Array<{ id: number, name: string, role: string }> = [
    //     { id: 1, name: 'John', role: 'Developer' },
    //     { id: 2, name: 'Jane', role: 'Designer' },
    //     { id: 3, name: 'Tom', role: 'Manager' }
    // ];
    // function name(): void {
    //     const employeeIdToUpdate: number = 3;
    //     const newRole: string = 'Senior Manager';
    //     const indexToUpdate: number = employees.findIndex(employee => employee.id === employeeIdToUpdate);
    //     if (indexToUpdate !== -1) { employees[indexToUpdate].role = newRole; }
    //     console.log(employees);
    // }
    // name();

    // 将数组中的第一个负数替换为零
    // function name(): void {
    //     const numbers = [4, -1, 6, -2, 7];
    //     const indexToReplace = numbers.findIndex(num => num < 0);
    //     if (indexToReplace !== -1) {
    //         numbers.splice(indexToReplace, 1, 0);
    //     }
    //     console.log(numbers);
    // }
    // name();

}



